void *Native_AllocateHeap(HANDLE hHeap,size_t size, size_t alignment )   
{	
	void *pa, *ptr;
	pa=RtlAllocateHeap(hHeap,HEAP_ZERO_MEMORY,(size+alignment-1)+sizeof(void*));   
	if(!pa)   
	{
		return NULL;
	}
	ptr=(void*)( ((ULONG_PTR)pa+sizeof(void *)+alignment-1)&~(alignment-1) );   
	*((void **)ptr-1)=pa;
	return ptr;   
}
__checkReturn bool Native_DestroyHeap(__in HANDLE hHeap)
{
	NTSTATUS Status = 0;
	Status = RtlDestroyHeap(hHeap);
	if(NT_SUCCESS(Status))
	{
		return true;
	}
	return false;
}